[新機能] Transfer for SFTP が CloudFormation で作成可能になりました
こんにちは、菊池です。
地味なアップデートを紹介していくコーナーです。先日のアップデートにて、AWS Transfer for SFTP が CloudFormation に対応しました。
Transfer for SFTP を CloudFormation で作成
早速やってみました。
ServerとUser、両方ともCloudFormationに対応しています。 Transfer for SFTPを利用するのに必要な、IAM Role、S3バケットも併せて、まとめて作成してみました。
AWSTemplateFormatVersion: '2010-09-09' Description: SFTP RESOURCES Resources: #S3アクセス用のIAM Roleの作成 SftpRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "transfer.amazonaws.com" Action: - "sts:AssumeRole" ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonS3FullAccess #SFTP Serverの作成 SftpServer: Type: AWS::Transfer::Server Properties: EndpointType: PUBLIC #Home Directory用S3バケットの作成 HomeS3bucket: Type: AWS::S3::Bucket Properties: BucketName: !Join - '-' - - 'sftp' - !Ref 'AWS::AccountId' #SFTP Userの作成 SftpUser: Type: AWS::Transfer::User Properties: UserName: SFTPUSER HomeDirectory: !Sub /${HomeS3bucket}/SFTPUSER Role: !GetAtt SftpRole.Arn ServerId: !GetAtt SftpServer.ServerId SshPublicKeys: - ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXaB40RRVx4bHrdiuGbTBLp3qXwNf4QPSAylHPFCPBbdi/d+t9ox4NWtG3snuSV2ghRF8WBSj96DOQ7a/bRXaSayZnugmckoAi2LQPEBh7a9hcnCml/xGAPmq2riXo3dUgIlNTxS6RiCSuOX3HRzd1uMjtQX+tRqlt6Wnj/IY4fpIVY4Ra3g67lmZVBtGvh+uNnJX8cs7FnN6Y3KaFqelQMl9lLVYIGURfSrhwyZRSKF3b1Hgqo1uzX5SCugwb0IjNGcPU3x5p1fYUdrAv8mhk0nw/qPW47SVyXBaN9EkAk3AltF
SFTP Userの接続に利用するパブリックキーは、公開鍵の内容をそのまま記載することで設定可能です。
スタックを作成すれば、以下のようにまとめてリソースが設定されました。SFTPのマネジメントコンソール上で、CloudFormationで管理さている旨が表示されています。
最後に
以上です。Transfer for SFTPは、サーバー側の設定は非常にシンプルですが、CloudFormationでユーザーをポリシーなど含めて一括で管理できるのがうれしいところかもしれません。